'''
Author: duliang thinktanker@163.com
Date: 2025-08-24 13:29:45
LastEditors: duliang thinktanker@163.com
LastEditTime: 2025-08-24 13:59:39
FilePath:
Description: 
'''
import os
import shutil
from pathlib import Path


def copy_specific_images(source_folder, destination_folder, keyword="zk_清污机2"):
    """
    遍历文件夹中所有图片文件，将文件名包含特定关键词的图片复制到目标文件夹
    
    Args:
        source_folder (str): 源文件夹路径
        destination_folder (str): 目标文件夹路径
        keyword (str): 文件名需要包含的关键词
    """
    # 支持的图片格式
    image_extensions = {
        '.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff', '.webp'
    }

    # 创建目标文件夹（如果不存在）
    Path(destination_folder).mkdir(parents=True, exist_ok=True)

    # 遍历源文件夹中的所有文件
    for root, dirs, files in os.walk(source_folder):
        for file in files:
            # 获取文件扩展名并转为小写
            file_extension = Path(file).suffix.lower()

            # 检查是否为图片文件且文件名包含关键词
            if file_extension in image_extensions and keyword in file:
                source_path = os.path.join(root, file)
                destination_path = os.path.join(destination_folder, file)

                # 剪切文件，如果目标文件存在则覆盖
                if os.path.exists(destination_path):
                    os.remove(destination_path)
                shutil.move(source_path, destination_path)
                print(f"已剪切: {file}")


if __name__ == "__main__":
    # 使用示例
    source_dir = r"D:\myGitee\control-net\filedata\2025"
    dest_dir = r"D:\yoloimages"

    copy_specific_images(source_dir, dest_dir)
